package com.xwt.pattern.abstractFactory;

/**
 * Author:  Steven Xiao
 * Description:编写一个抽象类，根据enum创建一个人类出来
 * Date:  2016/3/11
 * Time:  14:32
 */
public abstract class AbstractHumanFactory implements HumanFactory {
    /**
     *给定一个性别人类，创建一个人类出来 专业术语是产生产品等级
     */
    protected  Human createHuman(HumanEnum humanEnum){
        Human human = null;

        if(!humanEnum.getValue().equals("")){
            try {
                //直接产生一个实例
                human = (Human)Class.forName(humanEnum.getValue()).newInstance();
            } catch (Exception e) {
                //因为使用了enum，这个种异常情况不会产生了，除非你的enum有问题；
                e.printStackTrace();
            }
        }
        return human;
    }
}
